+2001-10-26 Anders Carlsson <andersca@gnu.org>
+
+ * gtk/gtktreeview.c:
+ (gtk_tree_view_class_init): Create new "indent_expander"
+ style property.
+
+ (gtk_tree_view_get_arrow_xrange): Add a tree argument
+ to the function since the xrange can change depending
+ on where in the tree we are.
+
+ (coords_are_over_arrow): Update function call to
+ gtk_tree_view_get_arrow_xrange.
+ (gtk_tree_view_draw_arrow): Likewise.
+
+ (gtk_tree_view_real_expand_collapse_cursor_row):
+ Call real_{expand|collapse}_row, so that we'll have an
+ animation.
+
Fri Oct 26 20:13:36 2001 Kristian Rietveld <kristian@planet.nl>
* tests/Makefile.am: fixed a small typo
+2001-10-26 Anders Carlsson <andersca@gnu.org>
+
+ * gtk/gtktreeview.c:
+ (gtk_tree_view_class_init): Create new "indent_expander"
+ style property.
+
+ (gtk_tree_view_get_arrow_xrange): Add a tree argument
+ to the function since the xrange can change depending
+ on where in the tree we are.
+
+ (coords_are_over_arrow): Update function call to
+ gtk_tree_view_get_arrow_xrange.
+ (gtk_tree_view_draw_arrow): Likewise.
+
+ (gtk_tree_view_real_expand_collapse_cursor_row):
+ Call real_{expand|collapse}_row, so that we'll have an
+ animation.
+
Fri Oct 26 20:13:36 2001 Kristian Rietveld <kristian@planet.nl>
* tests/Makefile.am: fixed a small typo
+2001-10-26 Anders Carlsson <andersca@gnu.org>
+
+ * gtk/gtktreeview.c:
+ (gtk_tree_view_class_init): Create new "indent_expander"
+ style property.
+
+ (gtk_tree_view_get_arrow_xrange): Add a tree argument
+ to the function since the xrange can change depending
+ on where in the tree we are.
+
+ (coords_are_over_arrow): Update function call to
+ gtk_tree_view_get_arrow_xrange.
+ (gtk_tree_view_draw_arrow): Likewise.
+
+ (gtk_tree_view_real_expand_collapse_cursor_row):
+ Call real_{expand|collapse}_row, so that we'll have an
+ animation.
+
Fri Oct 26 20:13:36 2001 Kristian Rietveld <kristian@planet.nl>
* tests/Makefile.am: fixed a small typo
+2001-10-26 Anders Carlsson <andersca@gnu.org>
+
+ * gtk/gtktreeview.c:
+ (gtk_tree_view_class_init): Create new "indent_expander"
+ style property.
+
+ (gtk_tree_view_get_arrow_xrange): Add a tree argument
+ to the function since the xrange can change depending
+ on where in the tree we are.
+
+ (coords_are_over_arrow): Update function call to
+ gtk_tree_view_get_arrow_xrange.
+ (gtk_tree_view_draw_arrow): Likewise.
+
+ (gtk_tree_view_real_expand_collapse_cursor_row):
+ Call real_{expand|collapse}_row, so that we'll have an
+ animation.
+
Fri Oct 26 20:13:36 2001 Kristian Rietveld <kristian@planet.nl>
* tests/Makefile.am: fixed a small typo
+2001-10-26 Anders Carlsson <andersca@gnu.org>
+
+ * gtk/gtktreeview.c:
+ (gtk_tree_view_class_init): Create new "indent_expander"
+ style property.
+
+ (gtk_tree_view_get_arrow_xrange): Add a tree argument
+ to the function since the xrange can change depending
+ on where in the tree we are.
+
+ (coords_are_over_arrow): Update function call to
+ gtk_tree_view_get_arrow_xrange.
+ (gtk_tree_view_draw_arrow): Likewise.
+
+ (gtk_tree_view_real_expand_collapse_cursor_row):
+ Call real_{expand|collapse}_row, so that we'll have an
+ animation.
+
Fri Oct 26 20:13:36 2001 Kristian Rietveld <kristian@planet.nl>
* tests/Makefile.am: fixed a small typo
+2001-10-26 Anders Carlsson <andersca@gnu.org>
+
+ * gtk/gtktreeview.c:
+ (gtk_tree_view_class_init): Create new "indent_expander"
+ style property.
+
+ (gtk_tree_view_get_arrow_xrange): Add a tree argument
+ to the function since the xrange can change depending
+ on where in the tree we are.
+
+ (coords_are_over_arrow): Update function call to
+ gtk_tree_view_get_arrow_xrange.
+ (gtk_tree_view_draw_arrow): Likewise.
+
+ (gtk_tree_view_real_expand_collapse_cursor_row):
+ Call real_{expand|collapse}_row, so that we'll have an
+ animation.
+
Fri Oct 26 20:13:36 2001 Kristian Rietveld <kristian@planet.nl>
* tests/Makefile.am: fixed a small typo
+2001-10-26 Anders Carlsson <andersca@gnu.org>
+
+ * gtk/gtktreeview.c:
+ (gtk_tree_view_class_init): Create new "indent_expander"
+ style property.
+
+ (gtk_tree_view_get_arrow_xrange): Add a tree argument
+ to the function since the xrange can change depending
+ on where in the tree we are.
+
+ (coords_are_over_arrow): Update function call to
+ gtk_tree_view_get_arrow_xrange.
+ (gtk_tree_view_draw_arrow): Likewise.
+
+ (gtk_tree_view_real_expand_collapse_cursor_row):
+ Call real_{expand|collapse}_row, so that we'll have an
+ animation.
+
Fri Oct 26 20:13:36 2001 Kristian Rietveld <kristian@planet.nl>
* tests/Makefile.am: fixed a small typo
gint x,
gint y);
static void gtk_tree_view_get_arrow_xrange (GtkTreeView *tree_view,
+ GtkRBTree *tree,
gint *x1,
gint *x2);
static gint gtk_tree_view_new_column_width (GtkTreeView *tree_view,
#define _TREE_VIEW_EXPANDER_SIZE 10
#define _TREE_VIEW_VERTICAL_SEPARATOR 2
#define _TREE_VIEW_HORIZONTAL_SEPARATOR 2
-
+
gtk_widget_class_install_style_property (widget_class,
g_param_spec_int ("expander_size",
_("Expander Size"),
TRUE,
G_PARAM_READABLE));
+ gtk_widget_class_install_style_property (widget_class,
+ g_param_spec_boolean ("indent_expanders",
+ _("Indent Expanders"),
+ _("Make the expanders indented."),
+ FALSE,
+ G_PARAM_READABLE));
/* Signals */
widget_class->set_scroll_adjustments_signal =
gtk_signal_new ("set_scroll_adjustments",
arrow.height = BACKGROUND_HEIGHT (node);
- gtk_tree_view_get_arrow_xrange (tree_view, &arrow.x, &x2);
+ gtk_tree_view_get_arrow_xrange (tree_view, tree, &arrow.x, &x2);
arrow.width = x2 - arrow.x;
}
static void
gtk_tree_view_get_arrow_xrange (GtkTreeView *tree_view,
+ GtkRBTree *tree,
gint *x1,
gint *x2)
{
GList *list;
GtkTreeViewColumn *tmp_column = NULL;
gint total_width;
+ gboolean indent_expanders;
total_width = 0;
for (list = tree_view->priv->columns; list; list = list->next)
total_width += tmp_column->width;
}
+ gtk_widget_style_get (GTK_WIDGET (tree_view),
+ "indent_expanders", &indent_expanders,
+ NULL);
+
+ if (indent_expanders)
+ x_offset += tree_view->priv->tab_offset * _gtk_rbtree_get_depth (tree);
+
if (x1)
*x1 = x_offset;
widget = GTK_WIDGET (tree_view);
- gtk_tree_view_get_arrow_xrange (tree_view, &x_offset, NULL);
+ gtk_tree_view_get_arrow_xrange (tree_view, tree, &x_offset, NULL);
area.x = x_offset;
area.y = CELL_FIRST_PIXEL (tree_view, tree, node, vertical_separator);
gboolean open_all)
{
GtkTreePath *cursor_path = NULL;
+ GtkRBTree *tree;
+ GtkRBNode *node;
cursor_path = NULL;
if (tree_view->priv->cursor)
if (cursor_path == NULL)
return;
+ if (_gtk_tree_view_find_node (tree_view, cursor_path, &tree, &node))
+ return;
+
gtk_widget_grab_focus (GTK_WIDGET (tree_view));
gtk_tree_view_queue_draw_path (tree_view, cursor_path, NULL);
if (expand)
- gtk_tree_view_expand_row (tree_view, cursor_path, open_all);
+ gtk_tree_view_real_expand_row (tree_view, cursor_path, tree, node, open_all, TRUE);
else
- gtk_tree_view_collapse_row (tree_view, cursor_path);
+ gtk_tree_view_real_collapse_row (tree_view, cursor_path, tree, node, TRUE);
gtk_tree_path_free (cursor_path);
}